package com.lj.queue.annotation;

import org.springframework.core.annotation.AliasFor;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import java.lang.annotation.*;

/**
 * @author luojing
 * @since 2025/7/16 18:53
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Component
@Order
public @interface DelayQueueHandler {

    /**
     * 执行器要监听的延迟队列
     */
    String[] value() default {"*"};

    /**
     * 执行器是一个责任链模式，一个延迟队列可以被多个执行器执行，执行顺序取决于这个排序
     * 顺序越小越先执行
     */
    @AliasFor(annotation = Order.class, attribute = "value")
    int order() default Integer.MAX_VALUE;
}
